#ifndef VGA_H_
#define VGA_H_

class Vga
{
    public:
    ~Vga( ){ }
    
    static Vga& create( ){ static Vga m_vga; return m_vga; }
    
    void locate_cursor( const int& x, const int& y );
    void move_cursor( const int& dir_x, const int& dir_y );
    void store_image( const int& image_id, const unsigned short * buf, const int& len );
    void delete_image( const int& image_id );
    void mount_image( const int& sprite_id, const int& image_id );
    void squize_image( const int& sprite_id );
    void blink_image( const int& sprite_id );
    void fade_out_image( const int& sprite_id );
    
    void set_resolution( const int& width, const int& height );

    private:  
    Vga( ){ }
    static const int ADDRESS_OFFSET_MOVE_CURSOR = 0x00;

    int m_width;
    int m_height;
    int m_cursor_pos_x;
    int m_cursor_pos_y;

};

#endif /*VGA_H_*/
